package com.shujia.wyh.day29.test.codingtest;


import java.io.*;
import java.net.Socket;

/**
 * 3.模拟qq聊天功能：实现客户端与服务器（一对一）的聊天功能，客户端首先发起聊天，输入的内容在服务器端和客户端显示，
 * 然后服务器端也可以输入信息，同样信息在客户端和服务端显示。
 * 提示:
 * 客户端
 * 1)客户端编写聊天的方法chat()
 * 2)要求使用BufferedReader与BufferedWriter缓冲类
 * 3)编写用于测试的主方法调用chat()方法
 * 服务器端
 * 1)编写提供服务的方法service()
 * 2)编写用于测试的主方法调用service()方法
 */
public class ClientDemo {
    public static void chat() {
        //1、创建Socket对象
        try {
            Socket s = new Socket("192.168.7.42", 12345);

            while (true) {
                //键盘录入数据
                InputStreamReader reader = new InputStreamReader(System.in);
                BufferedReader br = new BufferedReader(reader);
                //获取通道中的输出流
                OutputStream outputStream = s.getOutputStream();
                BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(outputStream));
                String line = br.readLine();
                bw.write(line);
                bw.newLine();
                bw.flush();

                //获取服务器给的反馈
                InputStream is = s.getInputStream();
                byte[] bytes = new byte[1024];
                int length = is.read(bytes);
                String string = new String(bytes, 0, length);
                System.out.println("服务器给出的反馈：" + string);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    public static void main(String[] args) {
        chat();
    }
}
